package org.jet.emall.rbac.service;

import org.jet.emall.common.restful.result.CommonPage;
import org.jet.emall.rbac.dto.AdminUserViewDTO;
import org.jet.emall.rbac.dto.NewAdminUserDTO;
import org.jet.emall.rbac.dto.UpdateAdminUserDTO;

import java.util.List;

/**
 * @author xiaozai
 * @version 1.0
 * @date 2020-04-05 10:30
 */
public interface CustomAdminUserService {

    /**
     * 管理员用户分页
     * @param query
     * @param pageNum
     * @param pageSize
     * @return
     */
    CommonPage<AdminUserViewDTO> page(String query, Integer pageNum, Integer pageSize);

    /**
     *  保存新用户
     * @param newUser
     */
    void save(NewAdminUserDTO newUser);

    /**
     * 删除用户
     * @param ids  传入的是一个或多个用户的id
     */
    void delete(List<Integer> ids);

    /**
     * 更新用户信息
     * @param updateAdminUserDTO
     */
    void update(UpdateAdminUserDTO updateAdminUserDTO);

    /**
     * 启用或禁用用户
     * @param id 用户id
     * @param state 用户状态
     */
    void toggleUserStatus(List<Integer> id, Byte state);

    /**
     * 给用户分配角色
     * @param id  用户id
     * @param roleId 角色id
     */
    void assignRole(Integer id, Integer roleId);

    /**
     *  通过id查找用户
     * @param id
     * @return
     */
    AdminUserViewDTO findById(Integer id);
}
